'''
搬家具规则
家具
● 家具分不同的类型，并占用不同的面积
● 输出家具信息时，显示家具的类型和家具占用的面积
房子
● 房子有自己的地址和占用的面积
● 房子可以添加家具
  ○ 如果房子的剩余面积可以容纳家具，提示家具添加成功；
  ○ 否则提示添加失败
● 输出房子信息时，可以显示房子的地址、占地面积、剩余面积
● 查看房子中所有的家具
'''
class Furniture:#家具类
    def __init__(self,name,area):
        self.name=name
        self.area=area
    def __str__(self):
        return f'家具类型：{self.name}，家具面积：{self.area}'
class House:#房子类
    def __init__(self,address,area,farea,items=[]):
        self.address=address
        self.area=area
        self.free_area=self.area
        #家具列表
        self.items=[]
    def __str__(self):
        return f'房子地址：{self.address}，房子面积：{self.area}，房子剩余面积：{self.free_area}'
    def add_furniture(self,item):#添加家具
        if self.free_area>=item.area:
            self.free_area-=item.area
            self.items.append(item)
            print(f'家具{item.name}添加成功')
        else:
            print(f'家具{item.name}添加失败')
      
'''
1.创建 家具对象, 输出 家具信息
2. 创建 房子对象, 输出 房子信息
3. 房子添加家具, 输出 房子信息
'''
furniture1=Furniture('床',4)
print(furniture1)
house1=House('北京',120,120)
print(house1)
house1.add_furniture(furniture1)
print(house1)
furniture2=Furniture('沙发',20)
print(furniture2)
house1.add_furniture(furniture2)
print(house1)
